home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Missions / Mission_3 / Mission.script < prev    next >
Text File  |  2001-12-19  |  4KB  |  152 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. class CFireworksMission extends
  11.   CBaseMission, CFireworksMissionObjectList, CFireworksMission_Strings, CNavPointUser
  12. {
  13.   int GetAutoGeneratedUnitsQty()
  14.   {
  15.     return 6;
  16.   }
  17.  
  18.   void CFireworksMission()
  19.   {
  20.     BaseMission_InitMission();
  21.  
  22.     BaseMission_UpdateLoadProgress();
  23.     CreateComponent("DebugCamera", "GameObject", "CDebugCamera");
  24.     SetComponentPosition("DebugCamera",
  25.       matrix(
  26.         1.0, 0.0, 0.0, 8000.0,
  27.         0.0, 1.0, 0.0, 8000.0,
  28.         0.0, 0.0, 1.0,  600.0,
  29.         0.0, 0.0, 0.0,    1.0
  30.       ));
  31.  
  32.     // CreateComponent(IDToRegister, ComponentID, ScriptName | FileName | "")
  33.     BaseMission_UpdateLoadProgress();
  34.     CreateComponent("Atmosphere", "Atmosphere", "CFireworksMission_Atmosphere");
  35.  
  36.     BaseMission_UpdateLoadProgress();
  37.     CreateComponent("Sky", "SkyObject", "CFireworksMission_Sky");
  38.  
  39.     BaseMission_UpdateLoadProgress();
  40.     CreateComponent("Terrain", "ProgressiveTerrainObject", "CFireworksMission_Terrain");
  41.  
  42.     BaseMission_UpdateLoadProgress();
  43.     CreateComponent("Forest", "Forest", "CFireworksMission_Forest");
  44.  
  45.     BaseMission_UpdateLoadProgress();
  46.     CreateComponent("AIController", "AIController", "CBaseAIController");
  47.  
  48.     BaseMission_CreateObjects();
  49.  
  50.     //
  51.     //  Mission specific
  52.     //
  53.  
  54.     // count how many objectives' objects are in the mission
  55.     array m_Objects = GetObjectsIDs();
  56.  
  57.     m_HangarsCount  = 0;
  58.  
  59.     for (int i = 0; i < m_Objects.size(); i = i + 1)
  60.     {
  61.       if (Core_IsStringStartsWith(m_Objects[i], "Hangar"))
  62.         m_HangarsCount = m_HangarsCount + 1;
  63.     }
  64.   }
  65.  
  66.   int  m_HangarsCount;
  67.  
  68.   array m_MissionObjectivesStatuses =
  69.           array(
  70.             str_ObjectiveInProgress
  71.           );
  72.  
  73.   array m_BonusMissionObjectivesStatuses =
  74.           array();
  75.  
  76.   //
  77.   //  'virtual' methods
  78.   //
  79.  
  80.   //
  81.   //  Mission statistics
  82.  
  83.   string GetMissionStatistics()
  84.   {
  85.     return str_StatisticsTitle;
  86.   }
  87.  
  88.   //
  89.   //  Mission navpoints
  90.  
  91.   array GetNavPoints()
  92.   {
  93.     array navpoints =
  94.       array(
  95.           GetNavPoint("NavPoint_Airdrome")
  96. //        vector(4587.0, 5908.0, 600.0)
  97.       );
  98.     return navpoints;
  99.   }
  100.  
  101.   //
  102.   //  Mission map skin file
  103.  
  104.   string GetMapSkinFileName()
  105.   {
  106.     return "Missions/Mission_3/Map.skin";
  107.   }
  108.  
  109.   //
  110.   //  Mission specific event handlers
  111.   //
  112.  
  113.   //
  114.   //  Object destroyed event handler
  115.   //
  116.  
  117.   void OnGameObjectDestroyed(string _id)
  118.   {
  119.     BaseMission_OnGameObjectDestroyed(_id);
  120.  
  121.     if (Core_IsStringStartsWith(_id, "Hangar"))
  122.     {
  123.       m_HangarsCount = m_HangarsCount - 1;
  124.  
  125.       if (m_HangarsCount > 0)
  126.       {
  127.         string message = str_MessageTitle + m_HangarsCount;
  128.  
  129.         Core_BroadcastEvent(
  130.           "OnDisplayMessage",
  131.           message,
  132.           m_GoodNewsColor
  133.         );
  134.       }
  135.     }
  136.  
  137.     // check for main objective
  138.     if (m_HangarsCount == 0)
  139.     {
  140.       BaseMission_CompleteObjective(0);
  141.     }
  142.   }
  143.  
  144.   void OnMissionLoaded()
  145.   {
  146.     Core_SendEventTo("Helicopter", "OnInitiallyEnableTargetScreen", false);
  147.  
  148.     // Start mission music playing
  149.     Core_SendEventTo(SOID_MusicController, "PlayMissionMusic", 3);
  150.   }
  151. }
  152.